﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Media;

namespace PlanInterfejs
{
    public partial class SaleControl : UserControl
    {
        PlanView _view;

        public PlanView View
        {
            get { return _view; }
            set { _view = value; }
        }
        public SaleControl()
        {
            InitializeComponent();
        }

        List<Sala> listaSal;

        void UpdateLbSale()
        {
            var sale =
                from x in DAL.database.Sala.Include("Przedmiot_Typy")
                select x;
            
            listaSal = new List<Sala>();
            lbSale.Items.Clear();
            foreach (Sala sala in sale)
            {
                string str = sala.Numer;
                if (sala.Przedmiot_Typy != null)
                    str += " (tylko do: " + sala.Przedmiot_Typy.Nazwa + ")";
                lbSale.Items.Add(str);

                listaSal.Add(sala);
            }
        }

        void UpdateCbbPrzedmioty()
        {
            cbbPrzedmioty.DataSource = DAL.database.Przedmiot_Typy.Select(p => p);
            cbbPrzedmioty.DisplayMember = "Nazwa";
        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void btnUsun_Click(object sender, EventArgs e)
        {
            DAL.database.DeleteObject(listaSal[lbSale.SelectedIndex]);
            DAL.database.SaveChanges();
            UpdateLbSale();
        }

        private void SaleControl_Load(object sender, EventArgs e)
        {
            
            
        }

        private void btnDodaj_Click(object sender, EventArgs e)
        {
            Sala nowaSala = new Sala();
            nowaSala.Numer = tbNumer.Text;
            if (cbTylko.Checked)
            {
                nowaSala.Przedmiot_Typy = ((Przedmiot_Typy)cbbPrzedmioty.SelectedItem);
            }
            DAL.database.AddToSala(nowaSala);
            DAL.database.SaveChanges();
            UpdateLbSale();
            lbSale.SelectedIndex = lbSale.Items.Count - 1;
        }

        private void SaleControl_Enter(object sender, EventArgs e)
        {
            
        }

        private void SaleControl_VisibleChanged(object sender, EventArgs e)
        {
            UpdateLbSale();
            UpdateCbbPrzedmioty();
        }
    }
}
